package com.basic.common.quartz;



import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.stereotype.Component;

import java.text.SimpleDateFormat;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;

/**
 * 汇中仪表 定时 job 类
 * @author xumqc
 * @version v_1.0.1
 * @since 2022/7/07
 */
@Component
@EnableScheduling
public class HzFlowJob {

    private Logger log = LoggerFactory.getLogger(this.getClass());
    //设置内存开关值
    private final static ConcurrentHashMap<String,Object> dataMap = new ConcurrentHashMap();

    //获取日期 年月 格式的时间 例 202001
    //时间格式化
    private final static SimpleDateFormat formatter = new SimpleDateFormat("yyyyMM");

    private final static SimpleDateFormat dFormatter = new SimpleDateFormat("yyyy-MM-dd");




    /**
     *实时数据 定时任务 流量计
     */
    @QuartzAnnotation(expireTime = 5, timeUnit = TimeUnit.HOURS)
    public void syncExpireRealTimeData() {
        log.info("任务执行测试开始...." + System.currentTimeMillis());
        String tableName ="";
        //测试参数
    }


    /**
     *实时数据 定时任务 流量计  当时每小时内数据
     */
    @QuartzAnnotation(expireTime = 5, timeUnit = TimeUnit.HOURS)
    public void syncExpireHourTimeData() {
        log.info("任务执行测试开始...." + System.currentTimeMillis());
        String tableName ="";

    }

    /**
     *实时数据 定时任务 压力表
     */
    @QuartzAnnotation(expireTime = 5, timeUnit = TimeUnit.HOURS)
    public void syncExpirePlowRealTimeData() {
        log.info("任务执行测试开始...." + System.currentTimeMillis());
        String dataVal = null;

    }

    /**
     *实时数据 定时任务 压力表 当日一小时内数据
     */
    @QuartzAnnotation(expireTime = 5, timeUnit = TimeUnit.HOURS)
    public void syncExpirePlowHourTimeData() {

        log.info("任务执行测试开始...." + System.currentTimeMillis());
        String dataVal = null;

    }


    /**
     *实时数据 时间分段获取 定时任务
     */
    @QuartzAnnotation(expireTime = 5, timeUnit = TimeUnit.HOURS)
    public void syncExpireSegmemntRealTimeData() {
        log.info("任务执行测试开始2...." + System.currentTimeMillis());
        System.out.println("map2值"+dataMap.get("data"));
        if(dataMap !=null && dataMap.get("data")!=null){
            for (int i=100;i<200;i++){
                System.out.println("i="+i);
            }
        }
    }

    /**
     *换表 定时任务
     */
    @QuartzAnnotation(expireTime = 5, timeUnit = TimeUnit.HOURS)
    public void syncExpireChangeMeterInfoData() {
        System.out.println("map2值"+dataMap.get("data"));
        if(dataMap !=null && dataMap.get("data")!=null){
            log.info("任务执行测试开始3...." + System.currentTimeMillis());


//            for (int i=100;i<200;i++){
//                System.out.println("i="+i);
//            }
        }


    }


}
